"OnAfterData" Ereignis
"OnAfterData" Ereignis
Dieses Ereignis wirdausgelöstnachdem ein Berichtobjekt mit den Daten aus der Quelle gefüllt wurde, mit der es verbunden ist. Verwenden Sie dieses Ereignis, um entweder auf einen Datenbankfeldwert oder einen Ausdruck im Objekt zuzugreifen. Dieser Wert wird in der Systemvariablen „Value“ gespeichert, die nur in diesem Ereignis verfügbar ist. Wenn also zwei „Text“-Objekte die Ausdrücke [Table1.“Field1”] und [<Table2.“Field1”> + 10] enthalten, können die Werte dieser Ausdrücke durch Verweisen auf die „Value“-Variable für die Objekte verwendet werden:
wenn Value > 3000 dann
Memo1.Color := clRed
was einfacher ist, als etwas wie dies zu schreiben:
wenn <Table1."Field1"> > 3000 dann
Memo1.Color := clRed
Die Verwendung von „Value“ anstelle eines Ausdrucks ermöglicht es Ihnen, einen vielseitigen Handler für das „OnAfterData“-Ereignis zu schreiben, der mit mehreren Objekten verbunden werden kann.
Bitte beachten Sie noch etwas - wenn ein Objekt mehrere Ausdrücke enthält (zum Beispiel '[expr1] [expr2]'), wird der Wert des letzten Ausdrucks an die „Value“-Variable übertragen.
Das „OnAfterData“-Ereignis ist ideal zur Berechnung der Höhe und Breite von Objekten wie „Text“. Das heißt, wenn die genaue Höhe eines gestreckten „Text“-Objekts, das einen Ausdruck enthält, in einem Skript benötigt wird, können Sie diesen Code im „OnAfterData“-Ereignis verwenden:
var
MemoHeight: Extended;
begin
MemoHeight := TfrxMemoView(Sender).CalcHeight;
end;
Wenn dieser Code im „OnBeforePrint“-Ereignis verwendet würde, wäre das Ergebnis die Höhe des Objekts, das den Ausdruck enthält, bevor der Ausdruck ausgewertet wird, und nicht sein tatsächlicher Wert beim Drucken.